﻿/*
 * Copyright © 2011 Tristan Reeves, treeves@gmail.com
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
using Sprinkles.Attributes;

namespace Quickstart.Common
{
    public interface ICustomerService
    {
        Customer GetCustomer(int id);
        string SendMessageToCustomer(string message, int customerId);
    }

    [Export("customer-service", typeof(ICustomerService))]
    class CustomerService : ICustomerService
    {
        public Customer GetCustomer(int id)
        {
            var names = new[] { "John", "Laura", "Mikey" };

            var result = new Customer() { Id = id };
            result.Name = names[(id % 3)];
            return result;
        }
        public string SendMessageToCustomer(string message, int customerId)
        {
            var customer = GetCustomer(customerId);
            return EmailService.SendMessage(message, customer.Name);
        }

        [Import]
        public IEmailService EmailService { get; set; }
    }
}
